<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArActionGotoStraight Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArActionGotoStraight.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArActionGotoStraight-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArActionGotoStraight Class Reference<div class="ingroups"><a class="el" href="group__ActionClasses.html">Predefined ArAction Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>This action sets a heading and forward velocity based on angle and distance from current robot position to a given goal point.  
 <a href="classArActionGotoStraight.html#details">More...</a></p>

<p><code>#include &lt;ArActionGotoStraight.h&gt;</code></p>

<p>Inherits <a class="el" href="classArAction.html">ArAction</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae41a8fa690c6c156113679d392c10fd1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae41a8fa690c6c156113679d392c10fd1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ArActionGotoStraight</b> (const char *name=&quot;goto&quot;, double speed=400)</td></tr>
<tr class="separator:ae41a8fa690c6c156113679d392c10fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a660426998612c5e9219c55e5429d7f2a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a660426998612c5e9219c55e5429d7f2a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a660426998612c5e9219c55e5429d7f2a">cancelGoal</a> (void)</td></tr>
<tr class="memdesc:a660426998612c5e9219c55e5429d7f2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels the goal the robot has. <br /></td></tr>
<tr class="separator:a660426998612c5e9219c55e5429d7f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bed5a5e1ab26fec90873090229f0d1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6bed5a5e1ab26fec90873090229f0d1a"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a6bed5a5e1ab26fec90873090229f0d1a">getBacking</a> (void)</td></tr>
<tr class="memdesc:a6bed5a5e1ab26fec90873090229f0d1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether we're backing up there or not (set in the setGoals) <br /></td></tr>
<tr class="separator:a6bed5a5e1ab26fec90873090229f0d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a4bd3c304e87daaa74e71fbb9a660d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a4bd3c304e87daaa74e71fbb9a660d6"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a6a4bd3c304e87daaa74e71fbb9a660d6">getCloseDist</a> (void)</td></tr>
<tr class="memdesc:a6a4bd3c304e87daaa74e71fbb9a660d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets how close we have to get if we're not in just distance mode. <br /></td></tr>
<tr class="separator:a6a4bd3c304e87daaa74e71fbb9a660d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b86c00bef60445c8222bacba3ddfc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30b86c00bef60445c8222bacba3ddfc7"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a30b86c00bef60445c8222bacba3ddfc7">getEncoderGoal</a> (void)</td></tr>
<tr class="memdesc:a30b86c00bef60445c8222bacba3ddfc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the goal the action has. <br /></td></tr>
<tr class="separator:a30b86c00bef60445c8222bacba3ddfc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b5285ccf2a2ce6878d742c2c146b4e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b5285ccf2a2ce6878d742c2c146b4e8"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a1b5285ccf2a2ce6878d742c2c146b4e8">getGoal</a> (void)</td></tr>
<tr class="memdesc:a1b5285ccf2a2ce6878d742c2c146b4e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the goal the action has. <br /></td></tr>
<tr class="separator:a1b5285ccf2a2ce6878d742c2c146b4e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad36a1076a9392ce1d0cdbf8c98764512"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad36a1076a9392ce1d0cdbf8c98764512"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#ad36a1076a9392ce1d0cdbf8c98764512">getSpeed</a> (void)</td></tr>
<tr class="memdesc:ad36a1076a9392ce1d0cdbf8c98764512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the speed the action will travel to the goal at (mm/sec) <br /></td></tr>
<tr class="separator:ad36a1076a9392ce1d0cdbf8c98764512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bd583eb347714097d7cf9a56cbaadeb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6bd583eb347714097d7cf9a56cbaadeb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a6bd583eb347714097d7cf9a56cbaadeb">haveAchievedGoal</a> (void)</td></tr>
<tr class="memdesc:a6bd583eb347714097d7cf9a56cbaadeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sees if the goal has been achieved. <br /></td></tr>
<tr class="separator:a6bd583eb347714097d7cf9a56cbaadeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cae9a8506c5916fdbbe56383a1b4f17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cae9a8506c5916fdbbe56383a1b4f17"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a0cae9a8506c5916fdbbe56383a1b4f17">setCloseDist</a> (double closeDist=100)</td></tr>
<tr class="memdesc:a0cae9a8506c5916fdbbe56383a1b4f17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets how close we have to get if we're not in just distance mode. <br /></td></tr>
<tr class="separator:a0cae9a8506c5916fdbbe56383a1b4f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7063598fcfd3a6321f90dbd2b140f3aa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7063598fcfd3a6321f90dbd2b140f3aa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a7063598fcfd3a6321f90dbd2b140f3aa">setEncoderGoal</a> (<a class="el" href="classArPose.html">ArPose</a> encoderGoal, bool backwards=false, bool justDistance=true)</td></tr>
<tr class="memdesc:a7063598fcfd3a6321f90dbd2b140f3aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new goal and sets the action to go there. <br /></td></tr>
<tr class="separator:a7063598fcfd3a6321f90dbd2b140f3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1877c924429811f6727f223d7d54335c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1877c924429811f6727f223d7d54335c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a1877c924429811f6727f223d7d54335c">setEncoderGoalRel</a> (double dist, double deltaHeading, bool backwards=false, bool justDistance=true)</td></tr>
<tr class="memdesc:a1877c924429811f6727f223d7d54335c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the goal in a relative way. <br /></td></tr>
<tr class="separator:a1877c924429811f6727f223d7d54335c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf5bf26c33ea8ac9817f0cede8987e48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf5bf26c33ea8ac9817f0cede8987e48"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#aaf5bf26c33ea8ac9817f0cede8987e48">setGoal</a> (<a class="el" href="classArPose.html">ArPose</a> goal, bool backwards=false, bool justDistance=true)</td></tr>
<tr class="memdesc:aaf5bf26c33ea8ac9817f0cede8987e48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new goal and sets the action to go there. <br /></td></tr>
<tr class="separator:aaf5bf26c33ea8ac9817f0cede8987e48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4b386dc0cde7d449e7d189099399f7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4b386dc0cde7d449e7d189099399f7c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#ad4b386dc0cde7d449e7d189099399f7c">setGoalRel</a> (double dist, double deltaHeading, bool backwards=false, bool justDistance=true)</td></tr>
<tr class="memdesc:ad4b386dc0cde7d449e7d189099399f7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the goal in a relative way. <br /></td></tr>
<tr class="separator:ad4b386dc0cde7d449e7d189099399f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64da3da813c30eff342c7ae6370057e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a64da3da813c30eff342c7ae6370057e0">setMaxRotVel</a> (double rv)</td></tr>
<tr class="memdesc:a64da3da813c30eff342c7ae6370057e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set maximum rotational velocity allowed when adjusting heading while also driving forward.  <a href="#a64da3da813c30eff342c7ae6370057e0">More...</a><br /></td></tr>
<tr class="separator:a64da3da813c30eff342c7ae6370057e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d1bff268dc209df35742a677cbaa947"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d1bff268dc209df35742a677cbaa947"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a2d1bff268dc209df35742a677cbaa947">setSpeed</a> (double speed)</td></tr>
<tr class="memdesc:a2d1bff268dc209df35742a677cbaa947"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the speed the action will travel to the goal at (mm/sec) <br /></td></tr>
<tr class="separator:a2d1bff268dc209df35742a677cbaa947"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff0c38412948014511547e5419b20737"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#aff0c38412948014511547e5419b20737">setTurnSpeed</a> (double speed)</td></tr>
<tr class="memdesc:aff0c38412948014511547e5419b20737"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set speed used when turning in place (because angle difference is above turn threshold, see <a class="el" href="classArActionGotoStraight.html#aafe0940d42e207dabb51700d10a62850" title="If the angle at which the robot must rotate to face the goal point is greater than threshAngle...">setTurnThreshold()</a>).  <a href="#aff0c38412948014511547e5419b20737">More...</a><br /></td></tr>
<tr class="separator:aff0c38412948014511547e5419b20737"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafe0940d42e207dabb51700d10a62850"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#aafe0940d42e207dabb51700d10a62850">setTurnThreshold</a> (double threshAngle)</td></tr>
<tr class="memdesc:aafe0940d42e207dabb51700d10a62850"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the angle at which the robot must rotate to face the goal point is greater than <em>threshAngle</em>, turn in place rather than moving forward and turning simultaneously.  <a href="#aafe0940d42e207dabb51700d10a62850">More...</a><br /></td></tr>
<tr class="separator:aafe0940d42e207dabb51700d10a62850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1feef75985ee3a37ed2c3f2b8e682e2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1feef75985ee3a37ed2c3f2b8e682e2c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArActionGotoStraight.html#a1feef75985ee3a37ed2c3f2b8e682e2c">usingEncoderGoal</a> (void)</td></tr>
<tr class="memdesc:a1feef75985ee3a37ed2c3f2b8e682e2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether we're using the encoder goal or the normal goal. <br /></td></tr>
<tr class="separator:a1feef75985ee3a37ed2c3f2b8e682e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classArAction"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classArAction')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classArAction.html">ArAction</a></td></tr>
<tr class="memitem:a758f6d649620747c5fa743d4f7a8b53e inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a758f6d649620747c5fa743d4f7a8b53e"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a758f6d649620747c5fa743d4f7a8b53e">activate</a> (void)</td></tr>
<tr class="memdesc:a758f6d649620747c5fa743d4f7a8b53e inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate the action. <br /></td></tr>
<tr class="separator:a758f6d649620747c5fa743d4f7a8b53e inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4341cda2464899c839e370b514af929b inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4341cda2464899c839e370b514af929b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a4341cda2464899c839e370b514af929b">ArAction</a> (const char *name, const char *description=&quot;&quot;)</td></tr>
<tr class="memdesc:a4341cda2464899c839e370b514af929b inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a4341cda2464899c839e370b514af929b inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeca3135308234a8224643541090bea2b inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeca3135308234a8224643541090bea2b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#aeca3135308234a8224643541090bea2b">deactivate</a> (void)</td></tr>
<tr class="memdesc:aeca3135308234a8224643541090bea2b inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deactivate the action. <br /></td></tr>
<tr class="separator:aeca3135308234a8224643541090bea2b inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf64e5031c86d059500b93f402aa70d9 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classArArg.html">ArArg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#adf64e5031c86d059500b93f402aa70d9">getArg</a> (int number) const </td></tr>
<tr class="memdesc:adf64e5031c86d059500b93f402aa70d9 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the numbered argument.  <a href="#adf64e5031c86d059500b93f402aa70d9">More...</a><br /></td></tr>
<tr class="separator:adf64e5031c86d059500b93f402aa70d9 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6620d41b1e490476796696e8a70e7544 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6620d41b1e490476796696e8a70e7544"></a>
virtual <a class="el" href="classArArg.html">ArArg</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a6620d41b1e490476796696e8a70e7544">getArg</a> (int number)</td></tr>
<tr class="memdesc:a6620d41b1e490476796696e8a70e7544 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the numbered argument. <br /></td></tr>
<tr class="separator:a6620d41b1e490476796696e8a70e7544 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a19edfe254b794aa2dddb163d095905 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a19edfe254b794aa2dddb163d095905"></a>
virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a5a19edfe254b794aa2dddb163d095905">getDescription</a> (void) const </td></tr>
<tr class="memdesc:a5a19edfe254b794aa2dddb163d095905 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the long description of the action. <br /></td></tr>
<tr class="separator:a5a19edfe254b794aa2dddb163d095905 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77fd754d342d7662090f462e27971e08 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77fd754d342d7662090f462e27971e08"></a>
virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a77fd754d342d7662090f462e27971e08">getName</a> (void) const </td></tr>
<tr class="memdesc:a77fd754d342d7662090f462e27971e08 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the name of the action. <br /></td></tr>
<tr class="separator:a77fd754d342d7662090f462e27971e08 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a512f3a727095b1240f30558d32fe0f5b inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a512f3a727095b1240f30558d32fe0f5b"></a>
virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a512f3a727095b1240f30558d32fe0f5b">getNumArgs</a> (void) const </td></tr>
<tr class="memdesc:a512f3a727095b1240f30558d32fe0f5b inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the number of arguments this action takes. <br /></td></tr>
<tr class="separator:a512f3a727095b1240f30558d32fe0f5b inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae62a517795a31625bf3a2bb2ea8abac0 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae62a517795a31625bf3a2bb2ea8abac0"></a>
<a class="el" href="classArRobot.html">ArRobot</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#ae62a517795a31625bf3a2bb2ea8abac0">getRobot</a> () const </td></tr>
<tr class="memdesc:ae62a517795a31625bf3a2bb2ea8abac0 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the robot we are controlling, which was set by <a class="el" href="classArAction.html#a51b27da0403d43cd916cbf49ba7ddc23" title="Sets the robot this action is driving. ">setRobot()</a> <br /></td></tr>
<tr class="separator:ae62a517795a31625bf3a2bb2ea8abac0 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72db278f558206fdec03cbc15ac72104 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72db278f558206fdec03cbc15ac72104"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a72db278f558206fdec03cbc15ac72104">isActive</a> (void) const </td></tr>
<tr class="memdesc:a72db278f558206fdec03cbc15ac72104 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the action is active or not. <br /></td></tr>
<tr class="separator:a72db278f558206fdec03cbc15ac72104 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e1aaaf9de9b50f7732043a3772f53d7 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e1aaaf9de9b50f7732043a3772f53d7"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a5e1aaaf9de9b50f7732043a3772f53d7">log</a> (bool verbose=true) const </td></tr>
<tr class="memdesc:a5e1aaaf9de9b50f7732043a3772f53d7 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log information about this action using <a class="el" href="classArLog.html" title="Logging utility class. ">ArLog</a>. <br /></td></tr>
<tr class="separator:a5e1aaaf9de9b50f7732043a3772f53d7 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51b27da0403d43cd916cbf49ba7ddc23 inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a51b27da0403d43cd916cbf49ba7ddc23">setRobot</a> (<a class="el" href="classArRobot.html">ArRobot</a> *robot)</td></tr>
<tr class="memdesc:a51b27da0403d43cd916cbf49ba7ddc23 inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the robot this action is driving.  <a href="#a51b27da0403d43cd916cbf49ba7ddc23">More...</a><br /></td></tr>
<tr class="separator:a51b27da0403d43cd916cbf49ba7ddc23 inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05bc460d965589515a007f136a03d15a inherit pub_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05bc460d965589515a007f136a03d15a"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a05bc460d965589515a007f136a03d15a">~ArAction</a> ()</td></tr>
<tr class="memdesc:a05bc460d965589515a007f136a03d15a inherit pub_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Desructor. <br /></td></tr>
<tr class="separator:a05bc460d965589515a007f136a03d15a inherit pub_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:aee003e586551b59e5675b0d1368994f7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee003e586551b59e5675b0d1368994f7"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>State</b> { <b>STATE_NO_GOAL</b>, 
<b>STATE_ACHIEVED_GOAL</b>, 
<b>STATE_GOING_TO_GOAL</b>
 }</td></tr>
<tr class="separator:aee003e586551b59e5675b0d1368994f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a4ed0dd3b88c830a89d5fecda06b0f350"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ed0dd3b88c830a89d5fecda06b0f350"></a>
virtual <a class="el" href="classArActionDesired.html">ArActionDesired</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>fire</b> (<a class="el" href="classArActionDesired.html">ArActionDesired</a> currentDesired)</td></tr>
<tr class="separator:a4ed0dd3b88c830a89d5fecda06b0f350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a6af1a27431916857832431cbafc9b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a6af1a27431916857832431cbafc9b6"></a>
virtual <a class="el" href="classArActionDesired.html">ArActionDesired</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getDesired</b> (void)</td></tr>
<tr class="separator:a0a6af1a27431916857832431cbafc9b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1eef039213e87bf32c2154c005297b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1eef039213e87bf32c2154c005297b8"></a>
virtual const <a class="el" href="classArActionDesired.html">ArActionDesired</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getDesired</b> (void) const </td></tr>
<tr class="separator:af1eef039213e87bf32c2154c005297b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classArAction"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classArAction')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classArAction.html">ArAction</a></td></tr>
<tr class="memitem:ad6e1c757a5232752a9b05b18e8ef5091 inherit pro_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad6e1c757a5232752a9b05b18e8ef5091"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#ad6e1c757a5232752a9b05b18e8ef5091">setNextArgument</a> (<a class="el" href="classArArg.html">ArArg</a> const &amp;arg)</td></tr>
<tr class="memdesc:ad6e1c757a5232752a9b05b18e8ef5091 inherit pro_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the argument type for the next argument (must only be used in a constructor!) <br /></td></tr>
<tr class="separator:ad6e1c757a5232752a9b05b18e8ef5091 inherit pro_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a1c6fbc8df16b0e48424f137ea7a9be76"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1c6fbc8df16b0e48424f137ea7a9be76"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myBacking</b></td></tr>
<tr class="separator:a1c6fbc8df16b0e48424f137ea7a9be76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3730f8d0e42c5822b4060c1a2342dafd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3730f8d0e42c5822b4060c1a2342dafd"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myCloseDist</b></td></tr>
<tr class="separator:a3730f8d0e42c5822b4060c1a2342dafd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad50842e1155709e0781dee386ec74838"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad50842e1155709e0781dee386ec74838"></a>
<a class="el" href="classArActionDesired.html">ArActionDesired</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myDesired</b></td></tr>
<tr class="separator:ad50842e1155709e0781dee386ec74838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ca9c383028e393b0586be1c05cbca2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ca9c383028e393b0586be1c05cbca2e"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myDist</b></td></tr>
<tr class="separator:a5ca9c383028e393b0586be1c05cbca2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5412d6ff3f13c796092a5fc86bbc0667"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5412d6ff3f13c796092a5fc86bbc0667"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myDistTravelled</b></td></tr>
<tr class="separator:a5412d6ff3f13c796092a5fc86bbc0667"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9c1a491e8eac561106a7f083cbb2606"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9c1a491e8eac561106a7f083cbb2606"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myEncoderGoal</b></td></tr>
<tr class="separator:ac9c1a491e8eac561106a7f083cbb2606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08f252efb761934837cfce81503445de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08f252efb761934837cfce81503445de"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myGoal</b></td></tr>
<tr class="separator:a08f252efb761934837cfce81503445de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47ea7ac5ec076173d0f516bc659d9bcb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a47ea7ac5ec076173d0f516bc659d9bcb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myJustDist</b></td></tr>
<tr class="separator:a47ea7ac5ec076173d0f516bc659d9bcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec68e02d271c4c484ba9b9ef96ab4299"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec68e02d271c4c484ba9b9ef96ab4299"></a>
<a class="el" href="classArPose.html">ArPose</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myLastPose</b></td></tr>
<tr class="separator:aec68e02d271c4c484ba9b9ef96ab4299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab722bc5b19bc38f4f76811b6c198320d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab722bc5b19bc38f4f76811b6c198320d"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myMaxRotVel</b></td></tr>
<tr class="separator:ab722bc5b19bc38f4f76811b6c198320d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a295fd5c0038104f07285f14244991b52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a295fd5c0038104f07285f14244991b52"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myMaxTurnSpeed</b></td></tr>
<tr class="separator:a295fd5c0038104f07285f14244991b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a864c1280bfe7dce98d8f0cdacdae2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a864c1280bfe7dce98d8f0cdacdae2f"></a>
const bool&#160;</td><td class="memItemRight" valign="bottom"><b>myPrinting</b></td></tr>
<tr class="separator:a6a864c1280bfe7dce98d8f0cdacdae2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe3f97c30826eac667616985e1bcbd4a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe3f97c30826eac667616985e1bcbd4a"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>mySpeed</b></td></tr>
<tr class="separator:abe3f97c30826eac667616985e1bcbd4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7675722b07939f2addafb485425d0e7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7675722b07939f2addafb485425d0e7b"></a>
State&#160;</td><td class="memItemRight" valign="bottom"><b>myState</b></td></tr>
<tr class="separator:a7675722b07939f2addafb485425d0e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02548223cc9c0087f272e85a03c0340d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02548223cc9c0087f272e85a03c0340d"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>myTurnThresh</b></td></tr>
<tr class="separator:a02548223cc9c0087f272e85a03c0340d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d94d03b71b164c31a4beb7206f775fd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d94d03b71b164c31a4beb7206f775fd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myUseEncoderGoal</b></td></tr>
<tr class="separator:a2d94d03b71b164c31a4beb7206f775fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classArAction"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classArAction')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classArAction.html">ArAction</a></td></tr>
<tr class="memitem:a70d443457e6f0b80b434530c7d987b3f inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70d443457e6f0b80b434530c7d987b3f"></a>
std::map&lt; int, <a class="el" href="classArArg.html">ArArg</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myArgumentMap</b></td></tr>
<tr class="separator:a70d443457e6f0b80b434530c7d987b3f inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ca1ce8c5a89ee6f0c4ee79d2f534984 inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ca1ce8c5a89ee6f0c4ee79d2f534984"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>myDescription</b></td></tr>
<tr class="separator:a3ca1ce8c5a89ee6f0c4ee79d2f534984 inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af20f687ef5e108741edc2a5848700271 inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af20f687ef5e108741edc2a5848700271"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myIsActive</b></td></tr>
<tr class="separator:af20f687ef5e108741edc2a5848700271 inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0ebdaed2cabe36c51e9b995406fdb1d inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0ebdaed2cabe36c51e9b995406fdb1d"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>myName</b></td></tr>
<tr class="separator:ad0ebdaed2cabe36c51e9b995406fdb1d inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f29d8774f45e3508211c39e2afb9ce inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20f29d8774f45e3508211c39e2afb9ce"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>myNumArgs</b></td></tr>
<tr class="separator:a20f29d8774f45e3508211c39e2afb9ce inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a265851e04729e51a2a72d1ab4f1c5ed8 inherit pro_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a265851e04729e51a2a72d1ab4f1c5ed8"></a>
<a class="el" href="classArRobot.html">ArRobot</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a265851e04729e51a2a72d1ab4f1c5ed8">myRobot</a></td></tr>
<tr class="memdesc:a265851e04729e51a2a72d1ab4f1c5ed8 inherit pro_attribs_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">The robot we are controlling, set by the action resolver using <a class="el" href="classArAction.html#a51b27da0403d43cd916cbf49ba7ddc23" title="Sets the robot this action is driving. ">setRobot()</a> <br /></td></tr>
<tr class="separator:a265851e04729e51a2a72d1ab4f1c5ed8 inherit pro_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classArAction"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classArAction')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classArAction.html">ArAction</a></td></tr>
<tr class="memitem:aceff6f8ad785ab52a79c6d847ed0ea61 inherit pub_static_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aceff6f8ad785ab52a79c6d847ed0ea61"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#aceff6f8ad785ab52a79c6d847ed0ea61">getDefaultActivationState</a> (void)</td></tr>
<tr class="memdesc:aceff6f8ad785ab52a79c6d847ed0ea61 inherit pub_static_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the default activation state for all ArActions. <br /></td></tr>
<tr class="separator:aceff6f8ad785ab52a79c6d847ed0ea61 inherit pub_static_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3543892f92fbbfa9bb3f9e0b0d199f51 inherit pub_static_methods_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3543892f92fbbfa9bb3f9e0b0d199f51"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArAction.html#a3543892f92fbbfa9bb3f9e0b0d199f51">setDefaultActivationState</a> (bool defaultActivationState)</td></tr>
<tr class="memdesc:a3543892f92fbbfa9bb3f9e0b0d199f51 inherit pub_static_methods_classArAction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the default activation state for all ArActions. <br /></td></tr>
<tr class="separator:a3543892f92fbbfa9bb3f9e0b0d199f51 inherit pub_static_methods_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_attribs_classArAction"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classArAction')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classArAction.html">ArAction</a></td></tr>
<tr class="memitem:a5335a29c1c08e3fa97228635b38986fe inherit pro_static_attribs_classArAction"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5335a29c1c08e3fa97228635b38986fe"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>ourDefaultActivationState</b> = true</td></tr>
<tr class="separator:a5335a29c1c08e3fa97228635b38986fe inherit pro_static_attribs_classArAction"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This action sets a heading and forward velocity based on angle and distance from current robot position to a given goal point. </p>
<p>The robot will rotate towards this heading and move forward at the same time.</p>
<p>This action naively drives straight towards a given <a class="el" href="classArPose.html" title="Represents an x, y position with an orientation. ">ArPose</a>. The action stops the robot when it is within a distance threshold (Close Dist.) to the goal point, or alternatively, if it has gone the expected distance to the goal point. Maximum forward velocity can be set in the constructor or by calling <a class="el" href="classArActionGotoStraight.html#a2d1bff268dc209df35742a677cbaa947" title="Sets the speed the action will travel to the goal at (mm/sec) ">setSpeed()</a>. The velocity requested is proportional to the remaining distance to the goal, but is limited to the speed set with <a class="el" href="classArActionGotoStraight.html#a2d1bff268dc209df35742a677cbaa947" title="Sets the speed the action will travel to the goal at (mm/sec) ">setSpeed()</a>. The threshold for considering the goal achieved may be set by calling <a class="el" href="classArActionGotoStraight.html#a0cae9a8506c5916fdbbe56383a1b4f17" title="Sets how close we have to get if we&#39;re not in just distance mode. ">setCloseDist()</a>.</p>
<p>You can give it a new goal pose with <a class="el" href="classArActionGotoStraight.html#aaf5bf26c33ea8ac9817f0cede8987e48" title="Sets a new goal and sets the action to go there. ">setGoal()</a>, cancel its movement with <a class="el" href="classArActionGotoStraight.html#a660426998612c5e9219c55e5429d7f2a" title="Cancels the goal the robot has. ">cancelGoal()</a>, and see if it got there with <a class="el" href="classArActionGotoStraight.html#a6bd583eb347714097d7cf9a56cbaadeb" title="Sees if the goal has been achieved. ">haveAchievedGoal()</a>. You can reverse the motion by setting the backwards flag to true when setting a new goal. If you set the justDistance flag to true, the action stops after covering the calculated distance to the goal rather than checking each iteration against the given Close Distance threshold.</p>
<p>Normally a new heading and forward velocity will be commanded simultaneously. To make the robot rotate in place before forward velocity, set the turn threshold by calling <a class="el" href="classArActionGotoStraight.html#aafe0940d42e207dabb51700d10a62850" title="If the angle at which the robot must rotate to face the goal point is greater than threshAngle...">setTurnThreshold()</a>. This may be desired for goals that are only a short distance away from the robot, to avoid a large arc of motion.</p>
<p>This action does not check sensors. You may use a higher priority action to stop or otherwise override motion based on sensor data (e.g. ArActionLimiterForward, or you own custom action.) </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="gotoActionExample_8cpp-example.html#_a21">gotoActionExample.cpp</a>.</dd>
</dl></div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a64da3da813c30eff342c7ae6370057e0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArActionGotoStraight::setMaxRotVel </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rv</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set maximum rotational velocity allowed when adjusting heading while also driving forward. </p>
<p>If 0, use default. Normally, you will want this to be the default or a high value, to quickly correct any heading deviation while driving to the goal. </p>

</div>
</div>
<a class="anchor" id="aff0c38412948014511547e5419b20737"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArActionGotoStraight::setTurnSpeed </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>speed</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set speed used when turning in place (because angle difference is above turn threshold, see <a class="el" href="classArActionGotoStraight.html#aafe0940d42e207dabb51700d10a62850" title="If the angle at which the robot must rotate to face the goal point is greater than threshAngle...">setTurnThreshold()</a>). </p>
<p>If 0, use robot's default HEAD speed, which is usually its maximum rotational velocity capability. On some robots and for some applications this may be too fast, so you may want to reduce it here. </p>

</div>
</div>
<a class="anchor" id="aafe0940d42e207dabb51700d10a62850"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArActionGotoStraight::setTurnThreshold </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>threshAngle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the angle at which the robot must rotate to face the goal point is greater than <em>threshAngle</em>, turn in place rather than moving forward and turning simultaneously. </p>
<p>This is useful when the goal is close to the robot but the robot is facing away from the goal point. </p><dl class="section warning"><dt>Warning</dt><dd>if threshAngle is too small (smaller than about 20 deg) then the robot may not achieve that heading, and it could become stuck with no movement. To set the speed used when turning in place, use setMaxTurnSpeed(). </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArActionGotoStraight.h</li>
<li>ArActionGotoStraight.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArActionGotoStraight.html">ArActionGotoStraight</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
